This application is related to U.S. application No.: 08/942,309, entitled xe2x80x9cHOT ADD OF DEVICES SOFTWARE ARCHITECTURExe2x80x9d U.S. application No.: 08/942,306, entitled xe2x80x9cMETHOD FOR THE HOT ADD OF DEVICESxe2x80x9d U.S. application No.: 08/942,311, Pat. Ser. No.: 6,192,434, entitled xe2x80x9cHOT SWAP OF DEVICES SOFTWARE ARCHITECTURExe2x80x9d U.S. application No.: 08/942,457, entitled xe2x80x9cMETHOD FOR THE HOT SWAP TO DEVICESxe2x80x9d U.S. application No.: 08/943,072, Pat No.: 5,892,928, entitled xe2x80x9cMETHOD FOR THE HOT ADD OF A NETWORK ADAPTER ON A SYSTEM INCLUDING A DYNAMICALLY LOADED ADAPTER DRIVERxe2x80x9d U.S. application No.: 08/942,069, Pat. No.: 6,192,434 entitled xe2x80x9cMETHOD FOR THE HOT ADD OF A MASS STORAGE ADAPTER ON A SYSTEM INCLUDING A STATICALLY LOADED ADAPTER DRIVERxe2x80x9d U.S. application No. 09/275,906, Pat. No. 6,163,825, entitled xe2x80x9cMETHOD FOR HOT ADDING A NETWORK ADAPTER BY IDENTIFYING AND EXECUTING THE ADAPTER DRIVER BASED UPON THE LOGICAL BOARD NUMBER OF THE NETWORK ADAPTERxe2x80x9d U.S. application No.: 08/942,465, entitled xe2x80x9cMETHOD FOR THE HOT ADD OF A NETWORK ADAPTER ON A SYSTEM INCLUDING A STATICALLY LOADED ADAPTER DRIVERxe2x80x9d U.S. application No.: 08/962,963, Pat No.: 6,179,486, entitled xe2x80x9cMETHOD FOR THE HOT ADD OF A NETWORK ADAPTER ON A SYSTEM INCLUDING A STATICALLY LOADED ADAPTER DRIVERxe2x80x9d U.S. application No.: 08/962,963, Pat. No.: 6,179,486, entitled xe2x80x9cMETHOD FOR THE HOT ADD OF A MASS STORAGE ADAPTER DRIVERxe2x80x9d U.S. application No.: 08/943,078, Pat. No.: 5,889,965, entitled xe2x80x9cMETHOD FOR THE HOT SWAP OF A NETWORK ADAPTER ON A SYSTEM INCLUDING A DYNAMICALLY LOADED ADAPTER DRIVERxe2x80x9d U.S. application No.: 08/942,459, Pat. No.: 6,170,028, entitled xe2x80x9cMETHOD FOR THE HOT SWAP OF A NETWORK ADAPTER ON A SYSTEM INCLUDING A STATICALLY LOADED ADAPTER DRIVERxe2x80x9d and U.S. application No.: 08/942,458, Pat. No.: 6,173,346, entitled xe2x80x9cMETHOD FOR THE HOT SWAP OF A MASS STORAGE ADAPTER ON A SYSTEM INCLUDING A DYNAMICALLY LOADED ADAPTER DRIVERxe2x80x9d
Appendix A, which forms a part of this disclosure, is a list of commonly owned copending U.S. Pat. application. Each one of the appolications listed in Appendix A is hereby incorporated herein in its entirety by reference thereto.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
The field of the invention relates to I/O adapters in computer systems. More particularly, the field of invention relates to the hot add and swap of adapters on a computer system.
2. Description of the Related Technology
As enterprise-class servers, which are central computers in a network that manage common data, become more powerful and more capable, they are also becoming ever more sophisticated and complex. For many companies, these changes lead to concerns over server reliability and manageability, particularly in light of the increasingly critical role of server-based applications. While in the past many systems administrators were comfortable with all of the various components that made up a standards-based network server, today""s generation of servers can appear as an incomprehensible, unmanageable black box. Without visibility into the underlying behavior of the system, the administrator must xe2x80x9cfly blind.xe2x80x9d Too often, the only indicators the network manager has on the relative health of a particular server is whether or not it is running.
It is well-acknowledged that there is a lack of reliability and availability of most standards-based servers. Server downtime, resulting either from hardware or software faults or from regular maintenance, continues to be a significant problem. By one estimate, the cost of downtime in mission critical environments has risen to an annual total of $4.0 billion for U.S. businesses, with the average downtime event resulting in a $140 thousand loss in the retail industry and a $450 thousand loss in the securities industry. It has been reported that companies lose as much as $250 thousand in employee productivity for every 1% of computer downtime. With emerging Internet, intranet and collaborative applications taking on more essential business roles every day, the cost of network server downtime will continue to spiral upward.
A significant component of cost is hiring administration personnel. These costs decline dramatically when computer systems can be managed using a common set of tools, and where they don""t require immediate attention when a failure occurs. Where a computer system can continue to operate even when components fail, and defer repair until a later time, administration costs become more manageable and predictable.
While hardware fault tolerance is an important element of an overall high availability architecture, it is only one piece of the puzzle. Studies show that a significant percentage of network server downtime is caused by transient faults in the I/O subsystem. These faults may be due, for example, to the device driver, the device firmware, or hardware which does not properly handle concurrent errors, and often causes servers to crash or hang. The result is hours of downtime per failure, while a system administrator discovers the failure, takes some action, and manually reboots the server. In many cases, data volumes on hard disk drives become corrupt and must be repaired when the volume is mounted. A dismount-and-mount cycle may result from the lack of hot pluggability or hot plug in current standards-based servers. Hot plug refers to the addition and swapping of peripheral adapters to an operational computer system. Diagnosing intermittent errors can be a frustrating and time-consuming process. For a system to deliver consistently high availability, it must be resilient to these types of faults.
Existing systems also do not have an interface to control the changing or addition of an adapter. Since any user on a network could be using a particular adapter on the server, system administrators need a software application that will control the flow of communications to an adapter before, during, and after a hot plug operation on an adapter.
Current operating systems do not by themselves provide the support users need to hot add and swap an adapter. System users need software that will freeze and resume the communications of their adapters in a controlled fashion. The software needs to support the hot add of various peripheral adapters such as mass storage and network adapters. Additionally, the software should support adapters that are designed for various bus systems such as Peripheral Component Interconnect, CardBus, Microchannel, Industrial Standard Architecture (ISA), and Extended ISA (EISA). System users also need software to support the hot add and swap of canisters and multi-function adapter cards, which are plug-in cards having more than one adapter.
In a typical PC-based server, upon the failure of an adapter, which is a printed circuit board containing microchips, the server must be powered down, the new adapter and adapter driver installed, the server powered back up and the operating system reconfigured.
However, various entities have tried to implement the hot plug of these adapters to a fault tolerant computer system. One significant difficulty in designing a hot plug system is protecting the circuitry contained on the adapter from being short-circuited when an adapter is added to a powered system. Typically, an adapter contains edge connectors which are located on one side of the printed circuit board. These edge connectors allow power to transfer from the system bus to the adapter, as well as supplying data paths between the bus and the adapter. These edge connectors fit into a slot on the bus on the computer system. A traditional hardware solution for xe2x80x9chot plugxe2x80x9d systems includes increasing the length of at least one ground contact of the adapter, so that the ground contact on the edge connector is the first connector to contact the bus on insertion of the I/O adapter and the last connector to contact the bus on removal of the adapter. An example of such a solution is described in U.S. Pat. No. 5,210,855 to Thomas M. Bartol.
U.S. Pat. No. 5,579,491 to Jeffries discloses an alternative solution to the hot installation of I/O adapters. Here, each hotly installable adapter is configured with a user actuable initiator to request the hot removal of an adapter. The I/O adapter is first physically connected to a bus on the computer system. Subsequent to such connection a user toggles a switch on the I/O adapter which sends a signal to the bus controller. The signal indicates to the bus controller that the user has added an I/O adapter. The bus controller then alerts the user through a light emitting diode (LED) whether the adapter can be installed on the bus.
However, the invention disclosed in the Jeffries patent also contains several limitations. It requires the physical modification of the adapter to be hotly installed. Another limitation is that the Jeffries patent does not teach the hot addition of new adapter controllers or bus systems. Moreover, the Jeffries patent requires that before an I/O adapter is removed, another I/O adapter must either be free and spare or free and redundant. Therefore, if there was no free adapter, hot removal of an adapter is impossible until the user added another adapter to the computer system.
A related technology, not to be confused with hot plug systems, is Plug and Play defined by Microsoft and PC product vendors. Plug and Play is an architecture that facilitates the integration of PC hardware adapters to systems. Plug and Play adapters are able to identify themselves to the computer system after the user installs the adapter on the bus. Plug and Play adapters are also able to identify the hardware resources that they need for operation. Once this information is supplied to the operating system, the operating system can load the adapter drivers for the adapter that the user had added while the system was in a non-powered state. Plug and Play is used by both Windows 95 and Windows NT to configure adapter cards at boot-time. Plug and Play is also used by Windows 95 to configure devices in a docking station when a hot notebook computer is inserted into or removed from a docking station.
Therefore, a need exists for improvements in server management which will result in continuous operation despite adapter failures. System users must be able to replace failed components, upgrade outdated components, and add new functionality, such as new network interfaces, disk interface adapters and storage, without impacting existing users. Additionally, system users need a process to hot add their legacy adapters, without purchasing new adapters that are specifically designed for hot plug. As system demands grow, organizations must frequently expand, or scale, their computing infrastructure, adding new processing power, memory, mass storage and network adapters. With demand for 24-hour access to critical, server-based information resources, planned system downtime for system service or expansion has become unacceptable.
Embodiments of the inventive software architecture allows users to replace failed components, upgrade outdated components, and add new functionality, such as new network interfaces, disk interface adapters and storage, without impacting existing users. The software architecture supports the hot add and swap of off-the-shelf adapters, including those adapters that are programmable.
One embodiment of the invention includes a method of hot swapping a programmable mass storage adapter connected to an operational computer, comprising: connecting the programmable mass storage adapter to a plurality of I/O devices, executing a statically loaded adapter driver which accepts a packet to suspend and restart communications to the mass storage adapter, suspending all communication to the programmable mass storage adapter, removing the programmable mass storage adapter, inserting a new programmable mass storage adapter into the computer and restarting communications between the computer and the new programmable mass storage adapter.
Another embodiment of the invention includes a method of hot swapping a programmable mass storage adapter connected to an operational computer, comprising: connecting the programmable mass storage adapter to a plurality of I/O devices, executing a statically loaded adapter driver which accepts a packet to suspend and restart communications to the mass storage adapter, disabling power to the mass storage adapter, removing the mass storage adapter from the computer, inserting a new mass storage adapter into the computer at the same location as the mass storage adapter, enabling power to the new mass storage adapter and initiating communications between the computer and the new mass storage adapter.
Yet another embodiment of the invention includes a method of hot swapping a mass storage adapter to an operational computer including at least one canister, wherein the canister connects to one or more existing programmable adapters, comprising: connecting the programmable adapters to a plurality of I/O devices, executing an adapter driver which accepts requests to suspend and restart communications to an adapter, suspending all communication to the existing adapters on a selected one of the canisters, disabling power to the selected canister with the existing adapters, while maintaining power to the computer and other adapters, removing a mass storage adapter in the canister, adding a new mass storage adapter in the canister, restarting power to the adapters in the canister, restarting communications to the existing adapters and initiating communications between the computer and the new mass storage adapter.